///******************** NG.Respate(C)  **********************************
//* 产品名称: Respate 科技
//* 文件名称: laperro.c
//* 功能说明: 错误检查相关函数
//* 程序作者: 雷帕特公司(南宫子萍)
//* 程序版本: V1.1														   
//* 编制日期: 2019/1/29
//* 功能描述: 系统日志
//* QQ:	2085827949
//**********************************************************************/
#include "laperro.h"

#include <stdio.h>

char LAP_ERR_BUFF[100]={0};		// 错误输出缓冲区
FILE* LAP_ERR_OUT_FD = NULL;		// 错误输出 文件描述符
	
	

/*********************************************************************************
** 函数名称: Lap_setErrRedirect
** 功能描述: 设置错误信息输出重定向
** 输入参数: fd:重定向文件描述符       
** 输出参数: ret: 0:成功  其它:错误.
** 返回参数: <0: 错误  >=0: 正确
**********************************************************************************/
int Lap_setErrRedirect(char * file)
{
	FILE* file_fd = fopen(file,"a+");	// O_RDWR | O_CREAT | O_APPEND
	if(file_fd==NULL) return -1;		// 重定向错误输出失败

	if(LAP_ERR_OUT_FD != NULL)			// 当前错误流指向不为空，先关闭;
		fclose(LAP_ERR_OUT_FD);

	//LAP_ERR_OUT_FD = stdout;
	LAP_ERR_OUT_FD = (FILE*)file_fd;	// 重定向错误信息为 fd
	return 0;
}




















/*********************************************************************************
** 函数名称: lap_errneg
** 功能描述: 判断返回值是否小于0,并打印调试信息
** 输入参数: ret:比较值			sucStr: ret>=0要打印的信息			errStr：ret<0要打印的信息        
** 输出参数: None.
** 返回参数: None.
**********************************************************************************/
void lap_errneg(int ret,const char *sucStr,const char * errStr)
{
	if(ret<0)	//返回错误
	{
		if(errStr!=NULL)
		printf("[ret:%d] %s\n",ret,errStr);
		exit(-1);
	}
	else		//返回正确
	{
		if(sucStr!=NULL)
		printf("[ret:%d] %s\n",ret,sucStr);
	}
		

}


/*********************************************************************************
** 函数名称: lap_errnegfun
** 功能描述: 判断返回值是否小于0,调用fun函数
** 输入参数: ret:比较值			fun: 函数指针			argc：函数传参        
** 输出参数: None.
** 返回参数: None.
**********************************************************************************/
void lap_errnegfun(int ret,void(*fun(void *)),void *argc)
{
	if(ret<0)		//返回值正确
	(*fun)(argc);
}









																						 
